<?php

namespace app\common\model\Depot;

use think\Model;
// 引入软删除的模型
use traits\model\SoftDelete;

class Storage extends Model
{
    //在模型内部去引入软删除
    use SoftDelete;
    //
    protected $name = 'depot_storage';

    //指定一个自动设置的时间字段
    //开启自动写入
    protected $autoWriteTimestamp = true;

    //设置字段的名字
    protected $createTime = "createtime"; //插入的时候设置的字段名

    //禁止 写入的时间字段
    protected $updateTime = false;

    //设置软删除的字段更新的时间字段
    protected $deleteTime = 'deletetime';

    protected $append = [
        'createtime_text',
        'status_text',
        'type_text'
    ];


    public function getCreateTimeTextAttr($value,$data){
        $createtime = isset($data['createtime']) ? trim($data['createtime']) : '';
        if(empty($createtime)){
            return '';
        }
        return date('Y-m-d H:i',$createtime);
    }

    public function getStatusTextAttr($value,$data){
        $statusList = [0 => '待审批',1 => '审批失败',2 => '待入库',3 => '入库完成'];
        $status = isset($data['status']) ? trim($data['status']) : '';
        if($status >= '0'){
            return $statusList[$status];
        }
    }

    public function getTypeTextAttr($value,$data){
        $typeList = [1 => '直销入库',2 => '退货入库'];
        $type = isset($data['type']) ? trim($data['type']) : '';
        if($type >= '1'){
            return $typeList[$type];
        }
    }


    // 定义一个关联查询的方法、、查询分类
    public function supplier(){
        // storage.supplierid = supplier.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Depot\Supplier','supplierid','id',[],'LEFT')->setEagerlyType(0);
    }

    /**
     * 关联查询 入库员
    */
    public function admin()
    {
        return $this->belongsTo('app\admin\model\Admin','adminid','id',[],'LEFT')->setEagerlyType(0);
    }

    /**
     * 关联查询 审核员
    */
    public function reviewer()
    {
        return $this->belongsTo('app\admin\model\Admin','reviewerid','id',[],'LEFT')->setEagerlyType(0);
    }
}
